home *** CD-ROM | disk | FTP | other *** search
- property spriteNum, card, wastecard
- global stock, waste, tableau, redeals
-
- on beginSprite me
- redeals = 0
- card = sprite(spriteNum)
- stock = new(script("card pile"))
- stock.cards = shuffle()
- wastecard = sprite(12)
- end
-
- on shuffle me
- unshuffled = []
- shuffled = []
- repeat with couting = 1 to 2
- repeat with rank in ["ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king"]
- repeat with suit in ["hearts", "diamonds", "clubs", "spades"]
- unshuffled.add([#rank: rank, #suit: suit])
- end repeat
- end repeat
- repeat while unshuffled.count > 0
- temp = unshuffled[random(unshuffled.count)]
- shuffled.add(temp)
- unshuffled.deleteOne(temp)
- end repeat
- end repeat
- return shuffled
- end
-
- on mouseDown me
- if card.member = member("backofcard", "playing cards") then
- repeat with counter = 17 to 20
- if stock.cards.count = 0 then
- exit repeat
- end if
- puppetSound(3, member("deal card", "100GPak Generic SFX"))
- sprite(counter).member = member(stock.cards[1].rank & "_" & stock.cards[1].suit, "playing cards")
- stock.cards.deleteAt(1)
- tableau[sprite(counter).row].addCard(counter)
- updateStage()
- end repeat
- repeat with counter = 1 to 2
- if stock.cards.count = 0 then
- exit repeat
- end if
- puppetSound(3, member("deal card", "100GPak Generic SFX"))
- wastecard.member = member(stock.cards[1].rank & "_" & stock.cards[1].suit, "playing cards")
- stock.cards.deleteAt(1)
- waste.addCard(wastecard.spriteNum)
- updateStage()
- end repeat
- if stock.cards.count = 0 then
- if redeals < 3 then
- card.member = member("replenish", "playing cards")
- else
- card.member = member("empty", "playing cards")
- checklose()
- end if
- end if
- else
- if card.member = member("replenish", "playing cards") then
- redeals = redeals + 1
- shoot = []
- repeat with i = 1 to waste.cards.count
- shoot.add(waste.cards[i])
- end repeat
- repeat with hh = 1 to tableau.count
- repeat with i = 1 to tableau[hh].cards.count
- shoot.add(tableau[hh].cards[i])
- end repeat
- end repeat
- stock.cards = reshuffle(shoot)
- waste.cards.deleteAll()
- repeat with uu = 1 to tableau.count
- tableau[uu].cards.deleteAll()
- end repeat
- repeat with i = 17 to 20
- sprite(i).member = member("empty", "playing cards")
- sprite(i).undercard.member = member("empty", "playing cards")
- end repeat
- card.member = member("backofcard", "playing cards")
- wastecard.member = member("empty", "playing cards")
- wastecard.undercard.member = member("empty", "playing cards")
- end if
- end if
- end
-
- on reshuffle arg
- sho = []
- repeat with i = 1 to arg.count
- sho.add([#rank: arg[i].rank, #suit: arg[i].suit])
- end repeat
- return sho
- end
-